using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using FEL.COM;
using System.Globalization;
using System.Web.Services;
using System.Collections.Generic;
using FEL.BOD;
using FEL.INT;
using AjaxControlToolkit;

public partial class COM_COM_SOLICITUD_DET : PaginaBaseKCG
{
    public Com_Solicitud Com_Solicitud_Actual
    {
        get
        {
            if (ViewState["COM_SOLICITUD"] == null)
                ViewState["COM_SOLICITUD"] = ObtenerComSolicitud();
            return (Com_Solicitud)ViewState["COM_SOLICITUD"];
        }
    }


    Com_Solicitud ObtenerComSolicitud()
    {
        FEL.COM.BO_Com_Solicitud datos = new BO_Com_Solicitud();
        return datos.GetById("", (Scope)Session["Scope"], Request.QueryString["Com_Solicitud_Id"])[0];

    }

    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);
        cargarBotones();
        fvcom_solicitud_det.DataBound += new EventHandler(fvcom_solicitud_det_DataBound);
    }

    void fvcom_solicitud_det_DataBound(object sender, EventArgs e)
    {
        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            TextBox cantidad = (TextBox)Fv.FindControl("Cantidad");
            if (cantidad.Text == string.Empty)
                cantidad.Text = 0.ToString("N4", NumberFormatInfo.CurrentInfo);

            TextBox costo = (TextBox)Fv.FindControl("Costo");
            if (costo.Text == string.Empty)
                costo.Text = 0.ToString("N4", NumberFormatInfo.CurrentInfo);

            TextBox fecha = (TextBox)Fv.FindControl("Fecha");
            fecha.Text = Com_Solicitud_Actual.Fecha.ToString();

        }
        if (Fv.CurrentMode == FormViewMode.Edit)
        {

            ((AutoCompleteExtender)Fv.FindControl("AutoCompleteExtender1")).ContextKey = Com_Solicitud_Actual.Com_Centro_Compra_Id;            

        }
    }

    private void cargarBotones()
    {
        BtnSolicitud.Text = GetLocalResourceObject("Btn_Com_Solicitud_Det_SolicitudRecursoKCG.Text").ToString();
        BtnSolicitud.ToolTip = GetLocalResourceObject("Btn_Com_Solicitud_Det_SolicitudRecursoKCG.ToolTip").ToString();
    }

    protected void BtnSolicitud_Click(object sender, EventArgs e)
    {
        TextBox Com_Solicitud_Id = (TextBox)Fv.FindControl("Com_Solicitud_Id");
        Response.Redirect("~/COM/COM_SOLICITUD.aspx?Com_Solicitud_Id=" + Com_Solicitud_Id.Text);
    }

    protected override void DefinirParametrosFijosDeInsercion(System.Collections.Generic.List<DictionaryEntry> param)
    {
        if (Request.QueryString.Count > 0)
        {
            param.Add(new DictionaryEntry("Com_Solicitud_Id", Request.QueryString["Com_Solicitud_Id"]));
            param.Add(new DictionaryEntry("Com_Solicitud_Codigo", Com_Solicitud_Actual.Codigo));
            param.Add(new DictionaryEntry("Com_Centro_Compra_Nombre", Com_Solicitud_Actual.Com_Centro_Compra_Nombre));
            param.Add(new DictionaryEntry("Per_Personal_Nombre", Com_Solicitud_Actual.Per_Personal_Nombre));
            param.Add(new DictionaryEntry("Com_Solicitud_Fecha", Com_Solicitud_Actual.Fecha));
            param.Add(new DictionaryEntry("Com_Centro_Compra_Id", Com_Solicitud_Actual.Com_Centro_Compra_Id));

            ((AutoCompleteExtender)Fv.FindControl("AutoCompleteExtender1")).ContextKey = Com_Solicitud_Actual.Com_Centro_Compra_Id;
        }
        base.DefinirParametrosFijosDeInsercion(param);
    }
    protected override CheckBox CbInsertarMemoria
    {
        get { return null; }
    }

    protected override Type TipoObjeto
    {
        get { return typeof(global::Com_Solicitud_Det); }
    }

    protected override GridView Gv
    {
        get { return gvcom_solicitud_det; }
    }

    protected override FormView Fv
    {
        get { return fvcom_solicitud_det; }
    }

    protected override ObjectDataSource OdsGv
    {
        get { return odsgvcom_solicitud_det; }
    }

    protected override ObjectDataSource OdsDv
    {
        get { return odsfvcom_solicitud_det; }
    }

    protected override Button BResponderZoom
    {
        get { return Seleccionar; }
    }

    protected override Button BRegreso
    {
        get { return Atras; }
    }

    protected override Koala.KoalaWebControls.KFiltro KftFiltro
    {
        get { return kftFiltro; }
    }
    protected override string Contenedor
    {
        get { return "COM_SOLICITUD_DET"; }
    }

    protected void nav_Siguiente(object sender, EventArgs e)
    {
        Gv_SelectedIndexChanged(sender, e);
    }

    [WebMethod]
    static public string[] GetArticulo(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.COM.BO_Com_Articulo boComArticulo = new BO_Com_Articulo();

        List<Com_Articulo> litComArticulo = boComArticulo.GetByCentro("Nombre", s, contextKey, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litComArticulo.Count && i < count; i++)
        {
            string value = litComArticulo[i].Id + "||" +
                           litComArticulo[i].Codigo + "||" +
                           litComArticulo[i].Bod_Unidad_Id + "||" +
                           litComArticulo[i].Bod_Unidad_Codigo + "||" +
                           litComArticulo[i].Bod_Unidad_Nombre;


            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litComArticulo[i].Nombre, value));
        }

        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetUnidad(int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.BOD.BO_Bod_Unidad boBodUnidad = new BO_Bod_Unidad();

        List<Bod_Unidad> litBodUnidad = boBodUnidad.GetByGrupoUnidad("Nombre", s, contextKey);

        List<string> opciones1 = new List<string>();
        for (int i = 0; i < litBodUnidad.Count && i < count; i++)
        {
            string value = litBodUnidad[i].Codigo;

            opciones1.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litBodUnidad[i].Nombre, value));
        }

        return opciones1.ToArray();
    }

    [WebMethod]
    static public string[] GetPartida(string prefixText, int count)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.INT.BO_Int_Partida_Presupuestaria boIntPartida = new BO_Int_Partida_Presupuestaria();

        List<Int_Partida_Presupuestaria> litInt_Partida_Presupuestaria = boIntPartida.GetByLikeNombre("Nombre", s, prefixText + "%");

        List<string> opciones2 = new List<string>();
        for (int i = 0; i < litInt_Partida_Presupuestaria.Count && i < count; i++)
        {
            string value = litInt_Partida_Presupuestaria[i].Id + "||" +
                           litInt_Partida_Presupuestaria[i].Codigo;

            opciones2.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litInt_Partida_Presupuestaria[i].Nombre, value));
        }

        return opciones2.ToArray();
    }

}
